#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_TEXTO 1000
#define ALPHA_SIZE 26
#define ASCII_A 65
typedef struct{
	char c;
	int f;
}te;

int cmp(const void *x, const void *y){ 
	te p = *(te *)x, q = *(te*)y;
	if(p.f == q.f) return p.c - q.c;  
	return (q.f - p.f ); 
}

char lista[ALPHA_SIZE]={'E','T','A','O','I','N','H','S','R','D','L','C','U','M','W','F','G','Y','P','B','V','K','J','X','Q','Z'};
char cifrado[MAX_TEXTO];
char correspondente[ALPHA_SIZE];
te freq[ALPHA_SIZE];

int main(){
        int i,t=0,a;
        char c;
	for(i=0,a=65;i<ALPHA_SIZE;i++,a++){
	  freq[i].c=(char)a;
	  freq[i].f=0;
	}
	c=getchar();
	a=(int)c;
	while(c!=EOF) {
	  cifrado[t++]=c;
	  if(c==' '||c=='\n'){
	    c=getchar();
	    a=(int)c;
	    continue;
	  }
	  freq[a-ASCII_A].f++;
	  c=getchar();
	  a=(int)c;
	}
	/*Realizo a ordenacao por frequencia*/
	qsort(freq,ALPHA_SIZE,sizeof(te),cmp);
		
	/*freq ordenado em ordem decrescente*/
	for(i=0;i<ALPHA_SIZE;i++)
		correspondente[freq[i].c-ASCII_A]=lista[i]; 
		
	for(i=0;i<t;i++)
	        if(cifrado[i]==' '|| cifrado[i]=='\n'){
		  printf("%c",cifrado[i]);
		}else printf("%c",correspondente[cifrado[i]-ASCII_A]);
		 	
	return 0;
}

